<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=
    , initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <img src="./image/缓存.png" alt="">
    <div id="box">点击我</div>
<script>
//localStorage  sessionStorage  cookie
// Cookie :
//console.log(document.cookie)
// Cookie 是小甜饼的意思。顾名思义，cookie 确实非常小，它的大小限制为4KB左右。
// 它的主要用途有保存登录信息，比如你登录某个网站市场可以看到“记住密码”，这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。
// localStorage :
// localStorage 是 HTML5 标准中新加入的技术，它并不是什么划时代的新东西。早在 IE 6 时代，就有一个叫 userData 的东西用于本地存储，而当时考虑到浏览器兼容性，更通用的方案是使用 Flash。
// 而如今，localStorage 被大多数浏览器所支持，如果你的网站需要支持 IE6+，那以 userData 作为你的 polyfill 的方案是种不错的选择。
// sessionStorage
// sessionStorage 与 localStorage 的接口类似，但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思，直译过来是“会话”。而 sessionStorage 是一个前端的概念，
// 它只是可以将一部分数据在当前会话中保存下来，刷新页面数据依旧存在。但当页面关闭后，sessionStorage 中的数据就会被清空。
//具体区别见上图
    //操作方法(localStorage  sessionStorage)
    //1:setItem存储value
    localStorage.setItem('uid',1280);
    localStorage.setItem('uname',"liuying")
    localStorage.setItem('uid',1290); // 重复设置会被覆盖
    localStorage.setItem('sobj',{a:1});
    console.log(localStorage.getItem('sobj'))
    //2：getItem获取value
    console.log(localStorage.getItem('uid'));
    //3:removeItem删除key
    //localStorage.removeItem('uid')
    //4:clear清除所有的key/value
    //localStorage.clear()
    var box = document.getElementById('box');
    box.onclick = function(){
        sessionStorage.setItem('myhome','好压')
    } 
//  强制缓存和协商缓存 面试题 
//  ***强制缓存是我们在第一次请求资源时在http响应头设置一个过期时间，在时效内都将直接从浏览器进行获取，
//  ***常见的http响应头字段如Cache-Control 和 Expires 
//  ***协商缓存是我们通过http响应头字段etag或者Last-Modified等判断服务器上资源是否修改，
//  ***如果修改则从服务器重新获取，如果未修改则304指向浏览器缓存中进行获取。

</script>
</body>
</html>